com.thoughtworks.qdox

Class JavaDocBuilder

Implemented Interfaces:
Serializable, JavaClassCache

public class JavaDocBuilder
extends java.lang.Object
implements Serializable, JavaClassCache

Simple facade to QDox allowing a source tree to be parsed and the resulting object model navigated.

Example


 // -- Create JavaDocBuilder

 JavaDocBuilder builder = new JavaDocBuilder();

 // -- Add some files

 // Reading a single source file.
 builder.addSource(new FileReader("MyFile.java"));

 // Reading from another kind of input stream.
 builder.addSource(new StringReader("package test; public class Hello {}"));

 // Adding all .java files in a source tree (recursively).
 builder.addSourceTree(new File("mysrcdir"));

 // -- Retrieve source files

 JavaSource[] source = builder.getSources();

 
Authors:
Joe Walnes
Aslak Hellesøy

Field Summary

private ClassLibrary
classLibrary
private Map
classes
private boolean
debugLexer
private boolean
debugParser
private DocletTagFactory
docletTagFactory
private String
encoding
private List
sources

Constructor Summary

JavaDocBuilder()
JavaDocBuilder(DocletTagFactory docletTagFactory)

Method Summary

private void
addClass(JavaClass cls)
private void
addClasses(JavaSource source)
private void
addClassesRecursive(JavaClass javaClass, Set set)
private void
addClassesRecursive(JavaSource javaSource, Set resultSet)
private void
addField(Field field, ModelBuilder binaryBuilder)
private void
addMethodOrConstructor(Member member, ModelBuilder binaryBuilder)
private void
addModifiers(Set set, int modifier)
JavaSource
addSource(File file)
JavaSource
addSource(Reader reader)
JavaSource
addSource(Reader reader, String sourceInfo)
JavaSource
addSource(URL url)
void
addSourceTree(File file)
private JavaClass
createBinaryClass(String name)
private JavaClass
createUnknownClass(String name)
JavaClass
getClassByName(String name)
ClassLibrary
getClassLibrary()
private String
getClassName(String fullClassName)
JavaClass[]
getClasses()
Returns all the classes found in all the sources, including inner classes and "extra" classes (multiple outer classes defined in the same source file).
private static int
getDimension(Class c)
private String
getPackageName(String fullClassName)
JavaSource[]
getSources()
private static String
getTypeName(Class c)
static JavaDocBuilder
load(File file)
Note that after loading JavaDocBuilder classloaders need to be re-added.
void
save(File file)
List
search(Searcher searcher)
void
setDebugLexer(boolean debugLexer)
Forces QDox to dump tokens returned from lexer to System.err.
void
setDebugParser(boolean debugParser)
Forces QDox to dump parser states to System.out.
void
setEncoding(String encoding)

Field Details

classLibrary

private ClassLibrary classLibrary

classes

private Map classes

debugLexer

private boolean debugLexer

debugParser

private boolean debugParser

docletTagFactory

private DocletTagFactory docletTagFactory

encoding

private String encoding

sources

private List sources

Constructor Details

JavaDocBuilder

public JavaDocBuilder()

JavaDocBuilder

public JavaDocBuilder(DocletTagFactory docletTagFactory)

Method Details

addClass

private void addClass(JavaClass cls)

addClasses

private void addClasses(JavaSource source)

addClassesRecursive

private void addClassesRecursive(JavaClass javaClass,
                                 Set set)

addClassesRecursive

private void addClassesRecursive(JavaSource javaSource,
                                 Set resultSet)

addField

private void addField(Field field,
                      ModelBuilder binaryBuilder)

addMethodOrConstructor

private void addMethodOrConstructor(Member member,
                                    ModelBuilder binaryBuilder)

addModifiers

private void addModifiers(Set set,
                          int modifier)

addSource

public JavaSource addSource(File file)
            throws IOException,
                   FileNotFoundException

addSource

public JavaSource addSource(Reader reader)

addSource

public JavaSource addSource(Reader reader,
                            String sourceInfo)

addSource

public JavaSource addSource(URL url)
            throws IOException,
                   FileNotFoundException

addSourceTree

public void addSourceTree(File file)

createBinaryClass

private JavaClass createBinaryClass(String name)

createUnknownClass

private JavaClass createUnknownClass(String name)

getClassByName

public JavaClass getClassByName(String name)
Specified by:
getClassByName in interface JavaClassCache

getClassLibrary

public ClassLibrary getClassLibrary()

getClassName

private String getClassName(String fullClassName)

getClasses

public JavaClass[] getClasses()
Returns all the classes found in all the sources, including inner classes and "extra" classes (multiple outer classes defined in the same source file).
Specified by:
getClasses in interface JavaClassCache
Returns:
all the classes found in all the sources.
Since:
1.3

getDimension

private static final int getDimension(Class c)

getPackageName

private String getPackageName(String fullClassName)

getSources

public JavaSource[] getSources()

getTypeName

private static String getTypeName(Class c)

load

public static JavaDocBuilder load(File file)
            throws IOException
Note that after loading JavaDocBuilder classloaders need to be re-added.

save

public void save(File file)
            throws IOException

search

public List search(Searcher searcher)

setDebugLexer

public void setDebugLexer(boolean debugLexer)
Forces QDox to dump tokens returned from lexer to System.err.

setDebugParser

public void setDebugParser(boolean debugParser)
Forces QDox to dump parser states to System.out.

setEncoding

public void setEncoding(String encoding)