org.codehaus.groovy.tools.groovydoc
Class SimpleGroovyClassDocAssembler

java.lang.Object
  extended by org.codehaus.groovy.antlr.treewalker.VisitorAdapter
      extended by org.codehaus.groovy.tools.groovydoc.SimpleGroovyClassDocAssembler
All Implemented Interfaces:
GroovyTokenTypes, Visitor

public class SimpleGroovyClassDocAssembler
extends VisitorAdapter
implements GroovyTokenTypes


Field Summary
private  java.util.Map<java.lang.String,GroovyClassDoc> classDocs
           
private  SimpleGroovyFieldDoc currentFieldDoc
           
private  java.util.Map<java.lang.String,SimpleGroovyClassDoc> foundClasses
           
private static java.lang.String FS
           
private  java.util.List<java.lang.String> importedClassesAndPackages
           
private  boolean insideEnum
           
private  boolean isGroovy
           
private  LineColumn lastLineCol
           
private  java.util.List<LinkArgument> links
           
private  java.lang.String packagePath
           
private static java.util.regex.Pattern PREV_JAVADOC_COMMENT_PATTERN
           
private  java.util.Properties properties
           
private  SourceBuffer sourceBuffer
           
private  java.util.Stack<GroovySourceAST> stack
           
 
Fields inherited from interface org.codehaus.groovy.antlr.parser.GroovyTokenTypes
ABSTRACT, ANNOTATION, ANNOTATION_ARRAY_INIT, ANNOTATION_DEF, ANNOTATION_FIELD_DEF, ANNOTATION_MEMBER_VALUE_PAIR, ANNOTATIONS, ARRAY_DECLARATOR, ASSIGN, AT, BAND, BAND_ASSIGN, BIG_SUFFIX, BLOCK, BNOT, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, CASE_GROUP, CLASS_DEF, CLOSABLE_BLOCK, CLOSABLE_BLOCK_OP, CLOSURE_LIST, COLON, COMMA, COMPARE_TO, CTOR_CALL, CTOR_IDENT, DEC, DIGIT, DIV, DIV_ASSIGN, DOLLAR, DOT, DYNAMIC_MEMBER, ELIST, ELVIS_OPERATOR, EMPTY_STAT, ENUM_CONSTANT_DEF, ENUM_DEF, EOF, EQUAL, ESC, EXPONENT, EXPR, EXTENDS_CLAUSE, FINAL, FLOAT_SUFFIX, FOR_CONDITION, FOR_EACH_CLAUSE, FOR_IN_ITERABLE, FOR_INIT, FOR_ITERATOR, GE, GT, HEX_DIGIT, IDENT, IMPLEMENTS_CLAUSE, IMPLICIT_PARAMETERS, IMPORT, INC, INDEX_OP, INSTANCE_INIT, INTERFACE_DEF, LABELED_ARG, LABELED_STAT, LAND, LBRACK, LCURLY, LE, LETTER, LIST_CONSTRUCTOR, LITERAL_as, LITERAL_assert, LITERAL_boolean, LITERAL_break, LITERAL_byte, LITERAL_case, LITERAL_catch, LITERAL_char, LITERAL_class, LITERAL_continue, LITERAL_def, LITERAL_default, LITERAL_double, LITERAL_else, LITERAL_enum, LITERAL_extends, LITERAL_false, LITERAL_finally, LITERAL_float, LITERAL_for, LITERAL_if, LITERAL_implements, LITERAL_import, LITERAL_in, LITERAL_instanceof, LITERAL_int, LITERAL_interface, LITERAL_long, LITERAL_native, LITERAL_new, LITERAL_null, LITERAL_package, LITERAL_private, LITERAL_protected, LITERAL_public, LITERAL_return, LITERAL_short, LITERAL_static, LITERAL_super, LITERAL_switch, LITERAL_synchronized, LITERAL_this, LITERAL_threadsafe, LITERAL_throw, LITERAL_throws, LITERAL_transient, LITERAL_true, LITERAL_try, LITERAL_void, LITERAL_volatile, LITERAL_while, LNOT, LOR, LPAREN, LT, MAP_CONSTRUCTOR, MEMBER_POINTER, METHOD_CALL, METHOD_DEF, MINUS, MINUS_ASSIGN, ML_COMMENT, MOD, MOD_ASSIGN, MODIFIERS, NLS, NOT_EQUAL, NULL_TREE_LOOKAHEAD, NUM_BIG_DECIMAL, NUM_BIG_INT, NUM_DOUBLE, NUM_FLOAT, NUM_INT, NUM_LONG, OBJBLOCK, ONE_NL, OPTIONAL_DOT, PACKAGE_DEF, PARAMETER_DEF, PARAMETERS, PLUS, PLUS_ASSIGN, POST_DEC, POST_INC, QUESTION, RANGE_EXCLUSIVE, RANGE_INCLUSIVE, RBRACK, RCURLY, REGEX_FIND, REGEX_MATCH, REGEXP_CTOR_END, REGEXP_LITERAL, REGEXP_SYMBOL, RPAREN, SELECT_SLOT, SEMI, SH_COMMENT, SL, SL_ASSIGN, SL_COMMENT, SLIST, SPREAD_ARG, SPREAD_DOT, SPREAD_MAP_ARG, SR, SR_ASSIGN, STAR, STAR_ASSIGN, STAR_STAR, STAR_STAR_ASSIGN, STATIC_IMPORT, STATIC_INIT, STRICTFP, STRING_CH, STRING_CONSTRUCTOR, STRING_CTOR_END, STRING_CTOR_MIDDLE, STRING_CTOR_START, STRING_LITERAL, STRING_NL, SUPER_CTOR_CALL, TRIPLE_DOT, TYPE, TYPE_ARGUMENT, TYPE_ARGUMENTS, TYPE_LOWER_BOUNDS, TYPE_PARAMETER, TYPE_PARAMETERS, TYPE_UPPER_BOUNDS, TYPECAST, UNARY_MINUS, UNARY_PLUS, UNUSED_CONST, UNUSED_DO, UNUSED_GOTO, VARIABLE_DEF, VARIABLE_PARAMETER_DEF, VOCAB, WILDCARD_TYPE, WS
 
Fields inherited from interface org.codehaus.groovy.antlr.treewalker.Visitor
CLOSING_VISIT, OPENING_VISIT, SECOND_VISIT, SUBSEQUENT_VISIT
 
Constructor Summary
SimpleGroovyClassDocAssembler(java.lang.String packagePath, java.lang.String file, SourceBuffer sourceBuffer, java.util.List<LinkArgument> links, java.util.Properties properties, boolean isGroovy)
           
 
Method Summary
private  void addAnnotationRef(SimpleGroovyParameter node, GroovySourceAST t)
           
private  void addAnnotationRef(SimpleGroovyProgramElementDoc node, GroovySourceAST t)
           
private  void addAnnotationRefs(SimpleGroovyProgramElementDoc node, java.util.List<GroovySourceAST> nodes)
           
private  void addParametersTo(GroovySourceAST t, SimpleGroovyExecutableMemberDoc executableMemberDoc)
           
private  void adjustForAutomaticEnumMethods(SimpleGroovyClassDoc currentClassDoc)
           
private  java.lang.String extractImportPath(GroovySourceAST t)
           
private  java.lang.String extractName(GroovySourceAST typeNode)
           
private  java.lang.String getAsText(GroovySourceAST typeNode, java.lang.String defaultText)
           
private  java.lang.String getChildTextFromSource(GroovySourceAST child)
           
private  java.lang.String getChildTextFromSource(GroovySourceAST child, java.lang.String tokens)
           
private  SimpleGroovyClassDoc getCurrentClassDoc()
           
private  SimpleGroovyClassDoc getCurrentOrTopLevelClassDoc(GroovySourceAST node)
           
private  java.lang.String getDefaultValue(GroovySourceAST t)
           
private  GroovySourceAST getGrandParentNode()
           
 java.util.Map<java.lang.String,GroovyClassDoc> getGroovyClassDocs()
           
private  java.lang.String getIdentFor(GroovySourceAST gpn)
           
private  java.lang.String getJavaDocCommentsBeforeNode(GroovySourceAST t)
           
private  GroovySourceAST getParentNode()
           
private  java.lang.String getText(GroovySourceAST node)
           
private  java.lang.String getTypeNodeAsText(GroovySourceAST typeNode, java.lang.String defaultText)
           
private  java.lang.String getTypeOrDefault(GroovySourceAST t)
           
private  void handleDefaultValue(GroovySourceAST currentNode, SimpleGroovyParameter parameter)
           
private  boolean insideAnonymousInnerClass()
           
private  boolean isFieldDefinition()
           
private  boolean isMajorType(GroovySourceAST t)
           
private  boolean isNested()
           
private  boolean isTopLevelConstruct(GroovySourceAST node)
           
 GroovySourceAST pop()
           
private  void postProcessClassDocs()
           
private  void processAnnotations(GroovySourceAST t, SimpleGroovyProgramElementDoc node)
           
private  boolean processModifiers(GroovySourceAST t, SimpleGroovyMemberDoc memberDoc)
           
 void push(GroovySourceAST t)
           
private  java.lang.String recurseDownImportBranch(GroovySourceAST t)
           
 void visitAnnotationDef(GroovySourceAST t, int visit)
           
 void visitAnnotationFieldDef(GroovySourceAST t, int visit)
           
 void visitClassDef(GroovySourceAST t, int visit)
           
 void visitCtorIdent(GroovySourceAST t, int visit)
           
 void visitEnumConstantDef(GroovySourceAST t, int visit)
           
 void visitEnumDef(GroovySourceAST t, int visit)
           
 void visitExtendsClause(GroovySourceAST t, int visit)
           
 void visitImplementsClause(GroovySourceAST t, int visit)
           
 void visitImport(GroovySourceAST t, int visit)
           
 void visitInterfaceDef(GroovySourceAST t, int visit)
           
 void visitMethodDef(GroovySourceAST t, int visit)
           
 void visitVariableDef(GroovySourceAST t, int visit)
           
 
Methods inherited from class org.codehaus.groovy.antlr.treewalker.VisitorAdapter
setUp, tearDown, visitAbstract, visitAnnotation, visitAnnotationArrayInit, visitAnnotationMemberValuePair, visitAnnotations, visitArrayDeclarator, visitAssign, visitAt, visitBand, visitBandAssign, visitBigSuffix, visitBlock, visitBnot, visitBor, visitBorAssign, visitBsr, visitBsrAssign, visitBxor, visitBxorAssign, visitCaseGroup, visitClosedBlock, visitClosureList, visitClosureOp, visitColon, visitComma, visitCompareTo, visitCtorCall, visitDec, visitDefault, visitDigit, visitDiv, visitDivAssign, visitDollar, visitDot, visitDynamicMember, visitElist, visitEmptyStat, visitEof, visitEqual, visitEsc, visitExponent, visitExpr, visitFinal, visitFloatSuffix, visitForCondition, visitForEachClause, visitForInit, visitForInIterable, visitForIterator, visitGe, visitGt, visitHexDigit, visitIdent, visitImplicitParameters, visitInc, visitIndexOp, visitInstanceInit, visitLabeledArg, visitLabeledStat, visitLand, visitLbrack, visitLcurly, visitLe, visitLetter, visitListConstructor, visitLiteralAs, visitLiteralAssert, visitLiteralBoolean, visitLiteralBreak, visitLiteralByte, visitLiteralCase, visitLiteralCatch, visitLiteralChar, visitLiteralClass, visitLiteralContinue, visitLiteralDef, visitLiteralDefault, visitLiteralDouble, visitLiteralElse, visitLiteralEnum, visitLiteralExtends, visitLiteralFalse, visitLiteralFinally, visitLiteralFloat, visitLiteralFor, visitLiteralIf, visitLiteralImplements, visitLiteralImport, visitLiteralIn, visitLiteralInstanceof, visitLiteralInt, visitLiteralInterface, visitLiteralLong, visitLiteralNative, visitLiteralNew, visitLiteralNull, visitLiteralPackage, visitLiteralPrivate, visitLiteralProtected, visitLiteralPublic, visitLiteralReturn, visitLiteralShort, visitLiteralStatic, visitLiteralSuper, visitLiteralSwitch, visitLiteralSynchronized, visitLiteralThis, visitLiteralThreadsafe, visitLiteralThrow, visitLiteralThrows, visitLiteralTransient, visitLiteralTrue, visitLiteralTry, visitLiteralVoid, visitLiteralVolatile, visitLiteralWhile, visitLnot, visitLor, visitLparen, visitLt, visitMapConstructor, visitMemberPointer, visitMethodCall, visitMinus, visitMinusAssign, visitMlComment, visitMod, visitModAssign, visitModifiers, visitNls, visitNotEqual, visitNullTreeLookahead, visitNumBigDecimal, visitNumBigInt, visitNumDouble, visitNumFloat, visitNumInt, visitNumLong, visitObjblock, visitOneNl, visitOptionalDot, visitPackageDef, visitParameterDef, visitParameters, visitPlus, visitPlusAssign, visitPostDec, visitPostInc, visitQuestion, visitRangeExclusive, visitRangeInclusive, visitRbrack, visitRcurly, visitRegexFind, visitRegexMatch, visitRegexpCtorEnd, visitRegexpLiteral, visitRegexpSymbol, visitRparen, visitSelectSlot, visitSemi, visitShComment, visitSl, visitSlAssign, visitSlComment, visitSlist, visitSpreadArg, visitSpreadDot, visitSpreadMapArg, visitSr, visitSrAssign, visitStar, visitStarAssign, visitStarStar, visitStarStarAssign, visitStaticImport, visitStaticInit, visitStrictfp, visitStringCh, visitStringConstructor, visitStringCtorEnd, visitStringCtorMiddle, visitStringCtorStart, visitStringLiteral, visitStringNl, visitSuperCtorCall, visitTripleDot, visitType, visitTypeArgument, visitTypeArguments, visitTypecast, visitTypeLowerBounds, visitTypeParameter, visitTypeParameters, visitTypeUpperBounds, visitUnaryMinus, visitUnaryPlus, visitUnusedConst, visitUnusedDo, visitUnusedGoto, visitVariableParameterDef, visitVocab, visitWildcardType, visitWs
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FS

private static final java.lang.String FS
See Also:
Constant Field Values

PREV_JAVADOC_COMMENT_PATTERN

private static final java.util.regex.Pattern PREV_JAVADOC_COMMENT_PATTERN

stack

private final java.util.Stack<GroovySourceAST> stack

classDocs

private java.util.Map<java.lang.String,GroovyClassDoc> classDocs

importedClassesAndPackages

private java.util.List<java.lang.String> importedClassesAndPackages

links

private java.util.List<LinkArgument> links

properties

private java.util.Properties properties

currentFieldDoc

private SimpleGroovyFieldDoc currentFieldDoc

sourceBuffer

private SourceBuffer sourceBuffer

packagePath

private java.lang.String packagePath

lastLineCol

private LineColumn lastLineCol

insideEnum

private boolean insideEnum

foundClasses

private java.util.Map<java.lang.String,SimpleGroovyClassDoc> foundClasses

isGroovy

private boolean isGroovy
Constructor Detail

SimpleGroovyClassDocAssembler

public SimpleGroovyClassDocAssembler(java.lang.String packagePath,
                                     java.lang.String file,
                                     SourceBuffer sourceBuffer,
                                     java.util.List<LinkArgument> links,
                                     java.util.Properties properties,
                                     boolean isGroovy)
Method Detail

getGroovyClassDocs

public java.util.Map<java.lang.String,GroovyClassDoc> getGroovyClassDocs()

visitInterfaceDef

public void visitInterfaceDef(GroovySourceAST t,
                              int visit)
Specified by:
visitInterfaceDef in interface Visitor
Overrides:
visitInterfaceDef in class VisitorAdapter

visitEnumDef

public void visitEnumDef(GroovySourceAST t,
                         int visit)
Specified by:
visitEnumDef in interface Visitor
Overrides:
visitEnumDef in class VisitorAdapter

visitAnnotationDef

public void visitAnnotationDef(GroovySourceAST t,
                               int visit)
Specified by:
visitAnnotationDef in interface Visitor
Overrides:
visitAnnotationDef in class VisitorAdapter

visitClassDef

public void visitClassDef(GroovySourceAST t,
                          int visit)
Specified by:
visitClassDef in interface Visitor
Overrides:
visitClassDef in class VisitorAdapter

visitImport

public void visitImport(GroovySourceAST t,
                        int visit)
Specified by:
visitImport in interface Visitor
Overrides:
visitImport in class VisitorAdapter

visitExtendsClause

public void visitExtendsClause(GroovySourceAST t,
                               int visit)
Specified by:
visitExtendsClause in interface Visitor
Overrides:
visitExtendsClause in class VisitorAdapter

visitImplementsClause

public void visitImplementsClause(GroovySourceAST t,
                                  int visit)
Specified by:
visitImplementsClause in interface Visitor
Overrides:
visitImplementsClause in class VisitorAdapter

visitCtorIdent

public void visitCtorIdent(GroovySourceAST t,
                           int visit)
Specified by:
visitCtorIdent in interface Visitor
Overrides:
visitCtorIdent in class VisitorAdapter

visitMethodDef

public void visitMethodDef(GroovySourceAST t,
                           int visit)
Specified by:
visitMethodDef in interface Visitor
Overrides:
visitMethodDef in class VisitorAdapter

visitAnnotationFieldDef

public void visitAnnotationFieldDef(GroovySourceAST t,
                                    int visit)
Specified by:
visitAnnotationFieldDef in interface Visitor
Overrides:
visitAnnotationFieldDef in class VisitorAdapter

visitEnumConstantDef

public void visitEnumConstantDef(GroovySourceAST t,
                                 int visit)
Specified by:
visitEnumConstantDef in interface Visitor
Overrides:
visitEnumConstantDef in class VisitorAdapter

visitVariableDef

public void visitVariableDef(GroovySourceAST t,
                             int visit)
Specified by:
visitVariableDef in interface Visitor
Overrides:
visitVariableDef in class VisitorAdapter

postProcessClassDocs

private void postProcessClassDocs()

isNested

private boolean isNested()

isTopLevelConstruct

private boolean isTopLevelConstruct(GroovySourceAST node)

adjustForAutomaticEnumMethods

private void adjustForAutomaticEnumMethods(SimpleGroovyClassDoc currentClassDoc)

extractImportPath

private java.lang.String extractImportPath(GroovySourceAST t)

recurseDownImportBranch

private java.lang.String recurseDownImportBranch(GroovySourceAST t)

addAnnotationRef

private void addAnnotationRef(SimpleGroovyProgramElementDoc node,
                              GroovySourceAST t)

addAnnotationRef

private void addAnnotationRef(SimpleGroovyParameter node,
                              GroovySourceAST t)

addAnnotationRefs

private void addAnnotationRefs(SimpleGroovyProgramElementDoc node,
                               java.util.List<GroovySourceAST> nodes)

processAnnotations

private void processAnnotations(GroovySourceAST t,
                                SimpleGroovyProgramElementDoc node)

getDefaultValue

private java.lang.String getDefaultValue(GroovySourceAST t)

getChildTextFromSource

private java.lang.String getChildTextFromSource(GroovySourceAST child)

getChildTextFromSource

private java.lang.String getChildTextFromSource(GroovySourceAST child,
                                                java.lang.String tokens)

isFieldDefinition

private boolean isFieldDefinition()

insideAnonymousInnerClass

private boolean insideAnonymousInnerClass()

processModifiers

private boolean processModifiers(GroovySourceAST t,
                                 SimpleGroovyMemberDoc memberDoc)

getJavaDocCommentsBeforeNode

private java.lang.String getJavaDocCommentsBeforeNode(GroovySourceAST t)

isMajorType

private boolean isMajorType(GroovySourceAST t)

getText

private java.lang.String getText(GroovySourceAST node)

extractName

private java.lang.String extractName(GroovySourceAST typeNode)

getTypeOrDefault

private java.lang.String getTypeOrDefault(GroovySourceAST t)

getTypeNodeAsText

private java.lang.String getTypeNodeAsText(GroovySourceAST typeNode,
                                           java.lang.String defaultText)

getAsText

private java.lang.String getAsText(GroovySourceAST typeNode,
                                   java.lang.String defaultText)

addParametersTo

private void addParametersTo(GroovySourceAST t,
                             SimpleGroovyExecutableMemberDoc executableMemberDoc)

handleDefaultValue

private void handleDefaultValue(GroovySourceAST currentNode,
                                SimpleGroovyParameter parameter)

push

public void push(GroovySourceAST t)
Specified by:
push in interface Visitor
Overrides:
push in class VisitorAdapter

pop

public GroovySourceAST pop()
Specified by:
pop in interface Visitor
Overrides:
pop in class VisitorAdapter

getParentNode

private GroovySourceAST getParentNode()

getGrandParentNode

private GroovySourceAST getGrandParentNode()

getCurrentOrTopLevelClassDoc

private SimpleGroovyClassDoc getCurrentOrTopLevelClassDoc(GroovySourceAST node)

getCurrentClassDoc

private SimpleGroovyClassDoc getCurrentClassDoc()

getIdentFor

private java.lang.String getIdentFor(GroovySourceAST gpn)


Copyright © ${year} The Codehaus. All Rights Reserved.