com.thoughtworks.qdox
Class JavaDocBuilder

java.lang.Object
  extended bycom.thoughtworks.qdox.JavaDocBuilder
All Implemented Interfaces:
JavaClassCache, java.io.Serializable

public class JavaDocBuilder
extends java.lang.Object
implements java.io.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();

 

Author:
Joe Walnes, Aslak Hellesøy
See Also:
Serialized Form

Field Summary
private  java.util.Map classes
           
private  ClassLibrary classLibrary
           
private  DocletTagFactory docletTagFactory
           
private  java.lang.String encoding
           
private  java.util.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, java.util.Set set)
           
private  void addClassesRecursive(JavaSource javaSource, java.util.Set resultSet)
           
private  void addField(java.lang.reflect.Field field, ModelBuilder binaryBuilder)
           
private  void addMethodOrConstructor(java.lang.reflect.Member member, ModelBuilder binaryBuilder)
           
private  void addModifiers(java.util.Set set, int modifier)
           
 JavaSource addSource(java.io.File file)
           
 JavaSource addSource(java.io.Reader reader)
           
 void addSourceTree(java.io.File file)
           
private  JavaClass createBinaryClass(java.lang.String name)
           
 JavaClass getClassByName(java.lang.String name)
           
 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).
 ClassLibrary getClassLibrary()
           
private  java.lang.String getClassName(java.lang.String fullClassName)
           
private static int getDimension(java.lang.Class c)
           
private  java.lang.String getPackageName(java.lang.String fullClassName)
           
 JavaSource[] getSources()
           
private static java.lang.String getTypeName(java.lang.Class c)
           
static JavaDocBuilder load(java.io.File file)
          Note that after loading JavaDocBuilder classloaders need to be re-added.
 void save(java.io.File file)
           
 java.util.List search(Searcher searcher)
           
 void setEncoding(java.lang.String encoding)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

classes

private java.util.Map classes

classLibrary

private ClassLibrary classLibrary

sources

private java.util.List sources

docletTagFactory

private DocletTagFactory docletTagFactory

encoding

private java.lang.String encoding
Constructor Detail

JavaDocBuilder

public JavaDocBuilder()

JavaDocBuilder

public JavaDocBuilder(DocletTagFactory docletTagFactory)
Method Detail

addClasses

private void addClasses(JavaSource source)

addClass

private void addClass(JavaClass cls)

getClassByName

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

createBinaryClass

private JavaClass createBinaryClass(java.lang.String name)

addModifiers

private void addModifiers(java.util.Set set,
                          int modifier)

addField

private void addField(java.lang.reflect.Field field,
                      ModelBuilder binaryBuilder)

addMethodOrConstructor

private void addMethodOrConstructor(java.lang.reflect.Member member,
                                    ModelBuilder binaryBuilder)

getDimension

private static final int getDimension(java.lang.Class c)

getTypeName

private static java.lang.String getTypeName(java.lang.Class c)

getPackageName

private java.lang.String getPackageName(java.lang.String fullClassName)

getClassName

private java.lang.String getClassName(java.lang.String fullClassName)

addSource

public JavaSource addSource(java.io.Reader reader)

addSource

public JavaSource addSource(java.io.File file)
                     throws java.io.UnsupportedEncodingException,
                            java.io.FileNotFoundException
Throws:
java.io.UnsupportedEncodingException
java.io.FileNotFoundException

getSources

public JavaSource[] getSources()

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).

Returns:
all the classes found in all the sources.
Since:
1.3

addClassesRecursive

private void addClassesRecursive(JavaSource javaSource,
                                 java.util.Set resultSet)

addClassesRecursive

private void addClassesRecursive(JavaClass javaClass,
                                 java.util.Set set)

addSourceTree

public void addSourceTree(java.io.File file)

search

public java.util.List search(Searcher searcher)

getClassLibrary

public ClassLibrary getClassLibrary()

save

public void save(java.io.File file)
          throws java.io.IOException
Throws:
java.io.IOException

load

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

Throws:
java.io.IOException

setEncoding

public void setEncoding(java.lang.String encoding)