public abstract class AbstractRepositoryImpl extends Object implements Repository
Repository
that statically enumerates all ModuleDefinition
upfront.| Modifier and Type | Field and Description |
|---|---|
protected List<RepositoryChangeListener> |
listeners |
| Constructor and Description |
|---|
AbstractRepositoryImpl(String name,
URI location) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
add(ModuleDefinition def) |
protected void |
addLibrary(URI location) |
boolean |
addListener(RepositoryChangeListener listener)
Add a listener to changes happening to this repository.
|
ModuleDefinition |
find(String name,
String version)
Finds and returns a
DefaultModuleDefinition instance
for a module given the name and version constraints. |
List<ModuleDefinition> |
findAll()
Returns a list of all modules available in this repository
|
List<ModuleDefinition> |
findAll(String name)
Finds and returns a list of all the available versions of a
module given its name.
|
List<URI> |
getJarLocations()
Returns the plain jar files installed in this repository.
|
URI |
getLocation()
Returns the repository location
|
String |
getName()
Returns the repository name
|
void |
initialize()
Initialize the repository for use.
|
protected ModuleDefinition |
loadJar(File jar)
Loads a jar file and builds a
ModuleDefinition. |
protected abstract void |
loadModuleDefs(Map<ModuleId,ModuleDefinition> moduleDefs,
List<URI> libraries)
Called from
initialize() to load all ModuleDefinitions and libraries defintions |
protected ModuleDefinition |
newModuleDefinition(File jar,
Attributes attr)
Extensibility point for subclasses to create a different instance
of
ModuleDefinition. |
protected void |
remove(ModuleDefinition def) |
protected void |
removeLibrary(URI location) |
boolean |
removeListener(RepositoryChangeListener listener)
Removes a previously registered listener
|
void |
shutdown()
Shutdown the repository.
|
String |
toString() |
protected List<RepositoryChangeListener> listeners
public String getName()
RepositorygetName in interface Repositorypublic URI getLocation()
RepositorygetLocation in interface Repositorypublic ModuleDefinition find(String name, String version)
RepositoryDefaultModuleDefinition instance
for a module given the name and version constraints.find in interface Repositoryname - the requested module nameversion - the module version. Can be null if the caller doesn't care about the version.DefaultModuleDefinition or null if not found
in this repository.public List<ModuleDefinition> findAll()
RepositoryfindAll in interface Repositorypublic List<ModuleDefinition> findAll(String name)
RepositoryfindAll in interface Repositoryname - the requested module namepublic void initialize()
throws IOException
Repositoryinitialize in interface RepositoryIOException - if an error occur accessing the repositoryprotected abstract void loadModuleDefs(Map<ModuleId,ModuleDefinition> moduleDefs, List<URI> libraries) throws IOException
initialize() to load all ModuleDefinitions and libraries defintionsIOExceptionprotected ModuleDefinition loadJar(File jar) throws IOException
ModuleDefinition.
The system allows ModuleDefinitions to be built in any way,
but in practice module jars need to be built in a way agnostic
to Repository implementations (so that same module could
be used in different Repositorys), so it makes sense
to try to stick to the "common" loading scheme.
jar - Either a jar file or a directory that has the same structure as a jar file.IOExceptionprotected void add(ModuleDefinition def)
protected void remove(ModuleDefinition def)
protected void addLibrary(URI location)
protected void removeLibrary(URI location)
public void shutdown()
throws IOException
Repositoryshutdown in interface RepositoryIOException - if an error occur accessing the repositorypublic List<URI> getJarLocations()
getJarLocations in interface Repositorypublic boolean addListener(RepositoryChangeListener listener)
addListener in interface Repositorylistener - implementation listening to this repository changespublic boolean removeListener(RepositoryChangeListener listener)
removeListener in interface Repositorylistener - the previously registered listenerprotected ModuleDefinition newModuleDefinition(File jar, Attributes attr) throws IOException
ModuleDefinition.jar - The module jar file for which ModuleDefinition will be created.
Never null.IOExceptionCopyright © 2009-2016 Oracle Corporation. All Rights Reserved.