- Revision
- 754
- Author
- rfscholte
- Date
- 2010-09-28 17:07:38 -0500 (Tue, 28 Sep 2010)
Log Message
Add ModelBuilderFactory
Modified Paths
- trunk/qdox/src/java/com/thoughtworks/qdox/library/AbstractClassLibrary.java
- trunk/qdox/src/java/com/thoughtworks/qdox/library/OrderedClassLibraryBuilder.java
- trunk/qdox/src/java/com/thoughtworks/qdox/library/SortedClassLibraryBuilder.java
- trunk/qdox/src/java/com/thoughtworks/qdox/library/SourceFolderLibrary.java
- trunk/qdox/src/java/com/thoughtworks/qdox/library/SourceLibrary.java
Added Paths
Diff
Modified: trunk/qdox/src/java/com/thoughtworks/qdox/library/AbstractClassLibrary.java (753 => 754)
--- trunk/qdox/src/java/com/thoughtworks/qdox/library/AbstractClassLibrary.java 2010-09-28 20:49:45 UTC (rev 753) +++ trunk/qdox/src/java/com/thoughtworks/qdox/library/AbstractClassLibrary.java 2010-09-28 22:07:38 UTC (rev 754) @@ -4,6 +4,14 @@ import com.thoughtworks.qdox.JavaDocBuilder; import com.thoughtworks.qdox.model.JavaClass; +/** + * A ClassLibrary can be compared with a java classloader. Its main task is to serve a JavaClass based on a FQN. + * This AbstractClassLibrary should be inherited by all ClassLibraries. + * You can refer to a prent library, so these can be chained. + * Besides that it contains a context only for this library. It will hold the definitions of JavaClasses and JavaPackages + * + * @author Robert Scholte + */ public abstract class AbstractClassLibrary implements ClassLibrary {
Modified: trunk/qdox/src/java/com/thoughtworks/qdox/library/OrderedClassLibraryBuilder.java (753 => 754)
--- trunk/qdox/src/java/com/thoughtworks/qdox/library/OrderedClassLibraryBuilder.java 2010-09-28 20:49:45 UTC (rev 753) +++ trunk/qdox/src/java/com/thoughtworks/qdox/library/OrderedClassLibraryBuilder.java 2010-09-28 22:07:38 UTC (rev 754) @@ -8,6 +8,8 @@ import java.net.URL; import com.thoughtworks.qdox.model.JavaClass; +import com.thoughtworks.qdox.model.ModelBuilder; +import com.thoughtworks.qdox.model.ModelBuilderFactory; /** * This library resolves JavaClasses in the order in which class sources are added. @@ -18,16 +20,32 @@ { private ClassLibrary classLibrary; + + private ModelBuilderFactory modelBuilderFactory; private boolean debugLexer; private boolean debugParser; - + public OrderedClassLibraryBuilder() { + modelBuilderFactory = new ModelBuilderFactory() + { + public ModelBuilder newInstance() + { + return new ModelBuilder(); + } + }; classLibrary = new ClassNameLibrary(); } + public OrderedClassLibraryBuilder( ModelBuilderFactory modelBuilderFactory ) + { + this.modelBuilderFactory = modelBuilderFactory; + classLibrary = new ClassNameLibrary(); + + } + /* (non-Javadoc) * @see com.thoughtworks.qdox.library.ClassLibraryBuilder#addClassLoader(java.lang.ClassLoader) */ @@ -48,7 +66,7 @@ { if ( !( classLibrary instanceof SourceFolderLibrary ) ) { - classLibrary = new SourceFolderLibrary( classLibrary ); + classLibrary = new SourceFolderLibrary( modelBuilderFactory, classLibrary ); } SourceFolderLibrary sourceFolderLibrary = (SourceFolderLibrary) classLibrary; sourceFolderLibrary.setDebugLexer( debugLexer ); @@ -64,7 +82,7 @@ { if ( !( classLibrary instanceof SourceLibrary ) ) { - classLibrary = new SourceLibrary( classLibrary ); + classLibrary = new SourceLibrary( modelBuilderFactory, classLibrary ); } SourceLibrary sourceLibrary = (SourceLibrary) classLibrary; sourceLibrary.setDebugLexer( debugLexer ); @@ -80,7 +98,7 @@ { if ( !( classLibrary instanceof SourceLibrary ) ) { - classLibrary = new SourceLibrary( classLibrary ); + classLibrary = new SourceLibrary( modelBuilderFactory, classLibrary ); } SourceLibrary sourceLibrary = (SourceLibrary) classLibrary; sourceLibrary.setDebugLexer( debugLexer ); @@ -124,7 +142,7 @@ { if ( !( classLibrary instanceof SourceLibrary ) ) { - classLibrary = new SourceLibrary( classLibrary ); + classLibrary = new SourceLibrary( modelBuilderFactory, classLibrary ); } SourceLibrary sourceLibrary = (SourceLibrary) classLibrary; sourceLibrary.setDebugLexer( debugLexer ); @@ -136,7 +154,7 @@ { if ( !( classLibrary instanceof SourceLibrary ) ) { - classLibrary = new SourceLibrary( classLibrary ); + classLibrary = new SourceLibrary( modelBuilderFactory, classLibrary ); } SourceLibrary sourceLibrary = (SourceLibrary) classLibrary; sourceLibrary.setDebugLexer( debugLexer );
Modified: trunk/qdox/src/java/com/thoughtworks/qdox/library/SortedClassLibraryBuilder.java (753 => 754)
--- trunk/qdox/src/java/com/thoughtworks/qdox/library/SortedClassLibraryBuilder.java 2010-09-28 20:49:45 UTC (rev 753) +++ trunk/qdox/src/java/com/thoughtworks/qdox/library/SortedClassLibraryBuilder.java 2010-09-28 22:07:38 UTC (rev 754) @@ -8,6 +8,8 @@ import java.net.URL; import com.thoughtworks.qdox.model.JavaClass; +import com.thoughtworks.qdox.model.ModelBuilder; +import com.thoughtworks.qdox.model.ModelBuilderFactory; /** * @author Robert Scholte @@ -27,10 +29,25 @@ { classNameLibrary = new ClassNameLibrary(); classLoaderLibrary = new ClassLoaderLibrary( classNameLibrary ); - sourceFolderLibrary = new SourceFolderLibrary( classLoaderLibrary ); - sourceLibrary = new SourceLibrary( sourceFolderLibrary ); + ModelBuilderFactory modelBuilderFactory = new ModelBuilderFactory() + { + public ModelBuilder newInstance() + { + return new ModelBuilder(); + } + }; + sourceFolderLibrary = new SourceFolderLibrary( modelBuilderFactory, classLoaderLibrary ); + sourceLibrary = new SourceLibrary( modelBuilderFactory, sourceFolderLibrary ); } + public SortedClassLibraryBuilder( ModelBuilderFactory modelBuilderFactory ) + { + classNameLibrary = new ClassNameLibrary(); + classLoaderLibrary = new ClassLoaderLibrary( classNameLibrary ); + sourceFolderLibrary = new SourceFolderLibrary( modelBuilderFactory, classLoaderLibrary ); + sourceLibrary = new SourceLibrary( modelBuilderFactory, sourceFolderLibrary ); + } + public ClassLibraryBuilder appendClassLoader( ClassLoader classLoader ) { classLoaderLibrary.addClassLoader( classLoader );
Modified: trunk/qdox/src/java/com/thoughtworks/qdox/library/SourceFolderLibrary.java (753 => 754)
--- trunk/qdox/src/java/com/thoughtworks/qdox/library/SourceFolderLibrary.java 2010-09-28 20:49:45 UTC (rev 753) +++ trunk/qdox/src/java/com/thoughtworks/qdox/library/SourceFolderLibrary.java 2010-09-28 22:07:38 UTC (rev 754) @@ -8,26 +8,27 @@ import java.util.List; import com.thoughtworks.qdox.model.JavaClass; +import com.thoughtworks.qdox.model.ModelBuilderFactory; public class SourceFolderLibrary extends SourceLibrary { private List sourceFolders = new ArrayList(); // <java.io.File> - public SourceFolderLibrary( ClassLibrary parent ) + public SourceFolderLibrary( ModelBuilderFactory modelBuilderFactory, ClassLibrary parent ) { - super( parent ); + super( modelBuilderFactory, parent ); } - public SourceFolderLibrary( File sourceFolder ) + public SourceFolderLibrary( ModelBuilderFactory modelBuilderFactory, File sourceFolder ) { - super(); + super( modelBuilderFactory ); this.sourceFolders.add( sourceFolder ); } - public SourceFolderLibrary( File sourceFolder, ClassLibrary parent ) + public SourceFolderLibrary( ModelBuilderFactory modelBuilderFactory, File sourceFolder, ClassLibrary parent ) { - super( parent ); + super( modelBuilderFactory, parent ); this.sourceFolders.add( sourceFolder ); }
Modified: trunk/qdox/src/java/com/thoughtworks/qdox/library/SourceLibrary.java (753 => 754)
--- trunk/qdox/src/java/com/thoughtworks/qdox/library/SourceLibrary.java 2010-09-28 20:49:45 UTC (rev 753) +++ trunk/qdox/src/java/com/thoughtworks/qdox/library/SourceLibrary.java 2010-09-28 22:07:38 UTC (rev 754) @@ -7,6 +7,7 @@ import com.thoughtworks.qdox.model.JavaClass; import com.thoughtworks.qdox.model.ModelBuilder; +import com.thoughtworks.qdox.model.ModelBuilderFactory; import com.thoughtworks.qdox.parser.Lexer; import com.thoughtworks.qdox.parser.ParseException; import com.thoughtworks.qdox.parser.impl.JFlexLexer; @@ -15,6 +16,8 @@ public class SourceLibrary extends AbstractClassLibrary { + private ModelBuilderFactory modelBuilderFactory; + // parser and unused javaclasses private Map javaClassesMap = new Hashtable(); // <java.lang.String, com.thoughtworks.qdox.model.JavaClass> @@ -22,12 +25,12 @@ private boolean debugParser; - public SourceLibrary() + public SourceLibrary( ModelBuilderFactory modelBuilderFactory ) { super(); } - public SourceLibrary( ClassLibrary parent ) + public SourceLibrary( ModelBuilderFactory modelBuilderFactory, ClassLibrary parent ) { super( parent ); } @@ -64,7 +67,7 @@ throws ParseException { JavaClass result = null; - ModelBuilder builder = new ModelBuilder(); + ModelBuilder builder = modelBuilderFactory.newInstance(); Parser parser = new Parser( lexer, builder ); parser.setDebugLexer( debugLexer ); parser.setDebugParser( debugParser );
Added: trunk/qdox/src/java/com/thoughtworks/qdox/model/ModelBuilderFactory.java (0 => 754)
--- trunk/qdox/src/java/com/thoughtworks/qdox/model/ModelBuilderFactory.java (rev 0) +++ trunk/qdox/src/java/com/thoughtworks/qdox/model/ModelBuilderFactory.java 2010-09-28 22:07:38 UTC (rev 754) @@ -0,0 +1,6 @@ +package com.thoughtworks.qdox.model; + +public interface ModelBuilderFactory +{ + public ModelBuilder newInstance(); +} Property changes on: trunk/qdox/src/java/com/thoughtworks/qdox/model/ModelBuilderFactory.java ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native
To unsubscribe from this list please visit:
