org.python.core

Class PackageManager

Known Direct Subclasses:
CachedJarsPackageManager

public abstract class PackageManager
extends Object

Abstract package manager.

Field Summary

PyJavaPackage
topLevelPackage

Constructor Summary

PackageManager()

Method Summary

abstract void
addDirectory(java.io.File dir)
Append a directory to the list of directories searched for java packages and java classes.
abstract void
addJar(String jarfile, boolean cache)
Append a jar file to the list of locations searched for java packages and java classes.
abstract void
addJarDir(String dir, boolean cache)
Append a directory to the list of directories searched for java packages and java classes.
abstract PyList
doDir(PyJavaPackage jpkg, boolean instantiate, boolean exclpkgs)
Reports the specified package content names.
Class
findClass(String pkg, String name)
abstract Class
findClass(String pkg, String name, String reason)
PyObject
lookupName(String name)
PyJavaPackage
makeJavaPackage(String name, String classes, String jarfile)
Creates package/updates statically known classes info.
void
notifyPackageImport(String pkg, String name)
abstract boolean
packageExists(String pkg, String name)
Dynamically check if pkg.name exists as java pkg in the controlled hierarchy.

Field Details

topLevelPackage

public PyJavaPackage topLevelPackage

Constructor Details

PackageManager

public PackageManager()

Method Details

addDirectory

public abstract void addDirectory(java.io.File dir)
Append a directory to the list of directories searched for java packages and java classes.
Parameters:
dir - A directory.

addJar

public abstract void addJar(String jarfile,
                            boolean cache)
Append a jar file to the list of locations searched for java packages and java classes.
Parameters:
jarfile - A directory name.

addJarDir

public abstract void addJarDir(String dir,
                               boolean cache)
Append a directory to the list of directories searched for java packages and java classes.
Parameters:
dir - A directory name.

doDir

public abstract PyList doDir(PyJavaPackage jpkg,
                             boolean instantiate,
                             boolean exclpkgs)
Reports the specified package content names. Should be overriden. Used by PyJavaPackage.__dir__() and PyJavaPackage.fillDir().
Parameters:
jpkg - queried package
instantiate - if true then instatiate reported names in package dict
exclpkgs - exclude packages (just when instantiate is false)
Returns:
resulting list of names (PyList of PyString)

findClass

public Class findClass(String pkg,
                       String name)

findClass

public abstract Class findClass(String pkg,
                                String name,
                                String reason)

lookupName

public PyObject lookupName(String name)

makeJavaPackage

public PyJavaPackage makeJavaPackage(String name,
                                     String classes,
                                     String jarfile)
Creates package/updates statically known classes info. Uses PyJavaPackage.addPackage(java.lang.String, java.lang.String), PyJavaPackage.addPlaceholders(String).
Parameters:
name - package name
classes - comma-separated string
jarfile - involved jarfile; can be null
Returns:
created/updated package

notifyPackageImport

public void notifyPackageImport(String pkg,
                                String name)

packageExists

public abstract boolean packageExists(String pkg,
                                      String name)
Dynamically check if pkg.name exists as java pkg in the controlled hierarchy. Should be overriden.
Parameters:
pkg - parent pkg name
name - candidate name
Returns:
true if pkg exists

Jython homepage