This class represents the entry-point for xjavadoc classes. Come here to get
classes and packages.
IS_UNICODE
public static final String IS_UNICODE
Indicates whether this XJavaDoc was built with or without unicode support
NO_IMPORTED_PACKAGES
public static final int NO_IMPORTED_PACKAGES
messgage level for reporting unqualified classes when there are no imported
packages
ONE_OR_MORE_IMPORTED_PACKAGES
public static final int ONE_OR_MORE_IMPORTED_PACKAGES
messgage level for reporting unqualified classes when there are one or more
imported packages
PRIMITIVES
private static final List PRIMITIVES
_abstractFileClasses
private final Map _abstractFileClasses
_allSourceClasses
private final Map _allSourceClasses
This map contains the same classes as _sourceSetSourceClasses, but it is
also populated with additional classes that may be accessed that were not in
the source sets. This can be superclasses, classes referenced in methods,
import statements etc.
_binaryClasses
private final Map _binaryClasses
_birthday
private long _birthday
Remember when we're born. We hate sources that are born after us and we
pretend they don't exist, because if we don't we'll have very unpredictable
behaviour. Well, since we have editor plugin and this is singleton object,
we have to relax our policy on this. Or we will have to restart editor every
time we like to tag the same class again...
_docEncoding
private String _docEncoding
charset for generated file
_encoding
private String _encoding
charset for source file
_logMessages
private List _logMessages
info, error and warning messages related to parsing and class qualification
_packages
private final Map _packages
_primitiveClasses
private static HashMap _primitiveClasses
_properties
private final Map _properties
_sourceSetClassNames
private final Set _sourceSetClassNames
_sourceSetSourceClasses
private final Map _sourceSetSourceClasses
This map contains all the classes that were passed in the source sets,
excluding all inner classes.
_sourceSetSourceClassesWithInnerClasses
private Collection _sourceSetSourceClassesWithInnerClasses
This map contains all the classes that were passed in the source sets,
including all inner classes.
_sourceSets
private final Set _sourceSets
_unknownClasses
private final Map _unknownClasses
_useNodeParser
private boolean _useNodeParser
sticky parameter for useNodeParser. _useNodeParser = true -> slower parsing,
but modifiable javaodcs.
addAbstractFile
public void addAbstractFile(String qualifiedName,
AbstractFile file)
addInnerClassRecursive
private void addInnerClassRecursive(XClass outer,
Collection c)
Recursively adds inner classes to a collection
outer
- The feature to be added to the InnerClassRecursive attributec
- The feature to be added to the InnerClassRecursive attribute
addPackageMaybe
(package private) XPackage addPackageMaybe(String packageName)
Describe the method
packageName
- Describe the method parameter
- Describe the return value
addPrimitive
private final void addPrimitive(String name,
String type)
Describe the method
name
- Describe the method parametertype
- The feature to be added to the Primitive attribute
addSourceClass
(package private) void addSourceClass(SourceClass sourceClass)
Adds a source class to the cache. This method is also called from JavaParser
when parsing inner classes.
sourceClass
- Describe the method parameter
addSourceSet
public void addSourceSet(SourceSet sourceSet)
Adds a new set of java sources to be parsed.
sourceSet
- a set of java sources.
classExists
(package private) final boolean classExists(String qualifiedClassName)
- true if the class exists, either as source or
binary
dereferenceProperties
public String dereferenceProperties(String value)
getClass
private final Class getClass(String qualifiedName)
Returns the Class with the given name, or null if unknown.
qualifiedName
- Describe what the parameter does
getDocEncoding
public String getDocEncoding()
Getter for generated file charset.
getEncoding
public String getEncoding()
Getter for source file charset.
getOuterSourceClasses
private Collection getOuterSourceClasses()
Returns all classes in the registered source sets
getPrimitive
(package private) static Primitive getPrimitive(String name)
Gets the Primitive attribute of the XJavaDoc class
name
- Describe what the parameter does
getPropertyMap
public Map getPropertyMap()
getSourceClasses
public Collection getSourceClasses()
Returns all classes in the registered source sets, including inner classes
getSourceClasses
public Collection getSourceClasses(Predicate predicate)
getSourceFile
private AbstractFile getSourceFile(String qualifiedName)
Gets the SourceFile attribute of the XJavaDoc object
qualifiedName
- Describe what the parameter does
getSourceFileFor
(package private) static AbstractFile getSourceFileFor(XProgramElement pe)
Gets the file the pe is contained in. Note: calling this method with a
XProgramElement not from source (but from a binary or unknown class) will
result in a ClassCastException, so don't do that. This method is only used
for diagnostics in error reporting.
pe
- the program element we want the source for.
- the file the program element is contained in.
getSourcePackage
public XPackage getSourcePackage(String packageName)
Returns the package. The package must be one of the packages of the sources.
Other packages, such as java.lang are not available.
- an XPackage, or null if the packageName is not among the
sources.
getSourcePackages
public Collection getSourcePackages()
Returns the packages of the specified classes during parsing.
- Describe the return value
getXClass
public XClass getXClass(String qualifiedName)
Get the XClass corresponding to the qualifiedName. This can be a class from
source, a precompiled class or a primitive. UnknownClass is never returned
from this method, unless it has been previously instantiated. IMPORTANT:
If the Java source can be located, an instance of SourceClass will be
returned. -Even if that file was not among the files in the fileset or
sourceset. IMPORTANT: If qualifiedName represents an inner class, an
UnknownClass will be returned unless the enclousing "outer" class has been
resolved first.
qualifiedName
- Fully qualified class name
logMessage
(package private) void logMessage(SourceClass clazz,
UnknownClass unknownClass,
String unqualifiedClassName,
int level)
parsePropertyString
public static void parsePropertyString(String value,
List fragments,
List propertyRefs)
Parses a string containing ${xxx}
style property references
into two lists. The first list is a collection of text fragments, while the
other is a set of string property names. null
entries in the
first list indicate a property reference from the second list. NOTE: This
method was taken directly from Ant's source code
(org.apache.tools.ant.ProjectHelper
) with the BuildException throwing
removed.
value
- Text to parse. Must not be null
.fragments
- List to add text fragments to. Must not be null
.propertyRefs
- List to add property names to. Must not be null
.
printLogMessages
public void printLogMessages(PrintStream out,
int level)
Prints the log messages encountered during parsing
printMemoryStatus
public static void printMemoryStatus()
Dump to sytem out the status of XJavadoc.
registerTags
public void registerTags(String classpath)
Registers tags.
classpath
- where tags are found.
replaceProperties
public static String replaceProperties(String value,
Map keys)
Replaces ${xxx}
style constructions in the given value with the
string value of the corresponding data types. NOTE: This method was taken
directly from Ant's source code (org.apache.tools.ant.ProjectHelper) and
modified slightly to use a Map instead of a HashMap.
value
- The string to be scanned for property references. May be
null
, in which case this method returns immediately with
no effect.keys
- Mapping (String to String) of property names to their values.
Must not be null
.
- the original string with the properties replaced, or
null
if the original string is null
.
reset
public void reset(boolean resetTimeStamp)
Resets the caches.
resetTimeStamp
- true if timestamps should be reset too.
scanAndPut
private SourceClass scanAndPut(String qualifiedName)
Scan's a class and puts it in the cache.
qualifiedName
- Describe what the parameter does
- Describe the return value
setDocEncoding
public void setDocEncoding(String docencoding)
Setter for generated file charset.
setEncoding
public void setEncoding(String encoding)
Setter for source file charset.
setPropertyMap
public void setPropertyMap(Map properties)
setUseNodeParser
public void setUseNodeParser(boolean useNodeParser)
This method can be called prior to parsing so that all classes are parsed
with AST (to make it possible to write the source back to disk)
sourceExists
private boolean sourceExists(String qualifiedName)
Checks is the source exists
qualifiedName
- the class to check for
updateClassTag
public XClass updateClassTag(String className,
String tagName,
String parameterName,
String parameterValue,
int tagIndex)
throws XJavaDocException
Describe what the method does
className
- Describe what the parameter doestagName
- Describe what the parameter doesparameterName
- Describe what the parameter doesparameterValue
- Describe what the parameter doestagIndex
- Describe what the parameter does
- Describe the return value
updateMethodTag
public XClass updateMethodTag(String className,
String methodNameWithSignature,
String tagName,
String parameterName,
String parameterValue,
int tagIndex)
throws XJavaDocException
Describe what the method does
className
- qualified name of classmethodNameWithSignature
- method name followed by signature. no
spaces. Ex:
doIt(java.lang.String,int)
tagName
- tag nameparameterName
- parameter nameparameterValue
- new parameter valuetagIndex
- index of tag (??)
- the class corresponding to the className