public class SourceLibrary extends AbstractClassLibrary
AbstractClassLibrary.ClassLibraryFilter
Modifier and Type | Field and Description |
---|---|
private JavaClassContext |
context |
private boolean |
debugLexer |
private boolean |
debugParser |
private static java.lang.String |
DEFAULT_ENCODING |
private java.lang.String |
encoding |
private ErrorHandler |
errorHandler |
Constructor and Description |
---|
SourceLibrary(AbstractClassLibrary parent)
Create a new instance of SourceLibrary and chain it to the parent
|
Modifier and Type | Method and Description |
---|---|
JavaSource |
addSource(java.io.File file)
Add a
File containing java code to this library |
JavaSource |
addSource(java.io.InputStream stream)
Add an
InputStream containing java code to this library |
JavaSource |
addSource(java.io.Reader reader)
Add a
Reader containing java code to this library |
private JavaSource |
addSource(java.io.Reader reader,
java.net.URL url) |
JavaSource |
addSource(java.net.URL url)
Add a
URL containing java code to this library |
protected boolean |
containsClassReference(java.lang.String name)
This method is used to detect if there's a match with this classname.
|
java.lang.String |
getEncoding() |
ErrorHandler |
getErrorHandler() |
java.util.Collection<JavaClass> |
getJavaClasses()
Get all classes, including those from parent SourceLibraries
|
java.util.Collection<JavaPackage> |
getJavaPackages()
Get all packages, including those from parent SourceLibraries
|
java.util.Collection<JavaSource> |
getJavaSources()
Get all sources, including those from parent SourceLibraries
|
boolean |
isDebugLexer() |
boolean |
isDebugParser() |
(package private) Builder |
parse(java.io.InputStream stream,
java.net.URL url) |
private Builder |
parse(JavaLexer lexer,
java.net.URL url) |
(package private) Builder |
parse(java.io.Reader reader,
java.net.URL url) |
private void |
registerJavaClass(JavaClass cls) |
private void |
registerJavaPackage(JavaPackage pckg) |
protected void |
registerJavaSource(JavaSource source) |
protected JavaClass |
resolveJavaClass(java.lang.String name)
The implementation should check it's sources to see if it can build a JavaClass Model If not, just return null;
Once found it will be mapped, so there's no need to keep a reference to this object.
|
protected JavaPackage |
resolveJavaPackage(java.lang.String name) |
void |
setDebugLexer(boolean debugLexer)
Use the Lexer in debug mode
|
void |
setDebugParser(boolean debugParser)
Use the Parser in debug mode
|
void |
setEncoding(java.lang.String encoding)
Sets the encoding to use when parsing a URL or InputStreamReader
|
void |
setErrorHandler(ErrorHandler errorHandler) |
getJavaClass, getJavaClass, getJavaClasses, getJavaModules, getJavaPackage, getJavaPackages, getJavaSources, getModelBuilder, getModelBuilder, getModelBuilderFactory, getModelWriterFactory, hasClassReference, setModelBuilderFactory, setModelWriterFactory
private JavaClassContext context
private boolean debugLexer
private boolean debugParser
private static final java.lang.String DEFAULT_ENCODING
private java.lang.String encoding
private ErrorHandler errorHandler
public SourceLibrary(AbstractClassLibrary parent)
parent
- the parent classLibrarypublic JavaSource addSource(java.io.Reader reader) throws ParseException
Reader
containing java code to this libraryreader
- a Reader
which should contain java codeJavaSource
object of this readerParseException
- if this content couldn't be parsed to a JavaModelprivate JavaSource addSource(java.io.Reader reader, java.net.URL url)
public JavaSource addSource(java.io.InputStream stream) throws ParseException, java.io.IOException
InputStream
containing java code to this librarystream
- an InputStream
which should contain java codeJavaSource
object of this streamParseException
- if this content couldn't be parsed to a JavaModeljava.io.IOException
- if an IOException occurspublic JavaSource addSource(java.net.URL url) throws ParseException, java.io.IOException
URL
containing java code to this libraryurl
- a URL
which should contain java codeJavaSource
object of this urlParseException
- if this content couldn't be parsed to a JavaModeljava.io.IOException
- if an IOException occurspublic JavaSource addSource(java.io.File file) throws ParseException, java.io.IOException
File
containing java code to this libraryfile
- a File
which should contain java codeJavaSource
object of this fileParseException
- if this content couldn't be parsed to a JavaModeljava.io.IOException
- if an IOException occursBuilder parse(java.io.Reader reader, java.net.URL url) throws ParseException
ParseException
Builder parse(java.io.InputStream stream, java.net.URL url) throws ParseException, java.io.UnsupportedEncodingException
ParseException
java.io.UnsupportedEncodingException
private Builder parse(JavaLexer lexer, java.net.URL url) throws ParseException
ParseException
protected JavaClass resolveJavaClass(java.lang.String name)
AbstractClassLibrary
resolveJavaClass
in class AbstractClassLibrary
name
- the fully qualified namenull
protected JavaPackage resolveJavaPackage(java.lang.String name)
resolveJavaPackage
in class AbstractClassLibrary
protected final void registerJavaSource(JavaSource source)
source
- the source, might be null
private void registerJavaPackage(JavaPackage pckg)
private void registerJavaClass(JavaClass cls)
public final void setDebugLexer(boolean debugLexer)
debugLexer
- the debug logging flagpublic final boolean isDebugLexer()
public final void setDebugParser(boolean debugParser)
debugParser
- the debug logging flagpublic final boolean isDebugParser()
public final void setEncoding(java.lang.String encoding)
encoding
- the source encodingpublic final java.lang.String getEncoding()
public final void setErrorHandler(ErrorHandler errorHandler)
public final ErrorHandler getErrorHandler()
public java.util.Collection<JavaClass> getJavaClasses()
getJavaClasses
in interface ClassLibrary
getJavaClasses
in class AbstractClassLibrary
public java.util.Collection<JavaPackage> getJavaPackages()
getJavaPackages
in interface ClassLibrary
getJavaPackages
in class AbstractClassLibrary
public java.util.Collection<JavaSource> getJavaSources()
getJavaSources
in interface ClassLibrary
getJavaSources
in class AbstractClassLibrary
null
protected boolean containsClassReference(java.lang.String name)
AbstractClassLibrary
containsClassReference
in class AbstractClassLibrary
name
- the fully qualified name of the class