| java.lang.Object tide.project.ClassFilesManager
ClassFilesManager | final public class ClassFilesManager (Code) | | Manages the classes files (from classpath and the generated ones).
is associated to a project.
Include rt.jar (all java API classes)
Should be used for classes locations instead of the libs tree (that also contain sources)
load classes such as java.awt.geom.Point2D.Double ! (enclosed public classes)
( java/awt/geom/Point2D$Double.class => java.awt.geom.Point2D$Double )
no problem, replace file names "$" with ".".
PROBLEM: source file A may contain toplevel private classes named B => create b.class, not A$B !
no way to find out what it is (?) from the simple file name !
TODO: allow rescanning from a root (deleting root.* and rescan root)
TODO: allow only update new class files (use the last op system time and create a quick get)
Also keep old classes for completion classesCacheForCompletion. To avoid duplicate class exception when moving or refactoring from
inner class to standalone, the cache is emptyed on successful global build of branchs!
Oct: removed the toUppercase
|
classesCacheForCompletion | final File classesCacheForCompletion(Code) | | |
generatedClassesRoot | final File generatedClassesRoot(Code) | | |
ClassFilesManager | public ClassFilesManager(List<File> classPath, File generatedClassesRoot, File classesCacheForCompletion)(Code) | | |
analyseGeneratedClasses | public Future analyseGeneratedClasses()(Code) | | Must be called after each compilation... and at startup. Also on failure.
Immediately returns, the result is an ENQUEUED task.
|
buildWasSuccessful | public Future buildWasSuccessful(SourceFile rootRebuild)(Code) | | Call this on successful build. This allows to reconstruct a valid cache, i.e.
where no duplicate classes may occur. (when moving a class and partial recompile, for example !)
Parameters: rootRebuild - null when the whole project was compiled !Immediately returns, ENQUEUED. |
deleteAllClassesOnDiskAndWait | public void deleteAllClassesOnDiskAndWait()(Code) | | Called before compiling or on project clear.
HERE IS THE ONLY POINT WHERE CLASSES ARE DELETED !
|
getClassExact | public ProjClass getClassExact(String name)(Code) | | Parameters: name - for example "java.util.Vector"...Search order: generated classes, ext libs |
terminate | public void terminate()(Code) | | Call when terminated. And on project refresh.
Closes the opened jars and empty the caches.
|
|
|