public interface ArtifactContainer extends java.lang.Iterable<ArtifactEntry>, EnclosedEntity
Entries within this Container, may themselves be Containers Entry#convertToContainer()
Note that Container does not require hashCode/equals, and thus should not be used as a key in HashMaps, etc. This can be used to represent, for example, a directory on the file system or a JAR file.
Modifier and Type | Method and Description |
---|---|
ArtifactNotifier |
getArtifactNotifier()
Obtain the notification manager for this container.
|
ArtifactEntry |
getEntry(java.lang.String pathAndName)
Obtain an entry from this container.
|
ArtifactEntry |
getEntryInEnclosingContainer()
Get the Entry representing this entity within its EnclosingContainer
|
java.util.Collection<java.net.URL> |
getURLs()
This may not be implemented by all implementations of this interface and it should never return
null but should return an empty collection instead. |
boolean |
isRoot()
Does this container represent the root of an artifact.
|
void |
stopUsingFastMode()
Instruct this container that you no longer require it to consume
resources to speed access to it's content.
|
void |
useFastMode()
Instruct this container it may commit to using more resources
to speed access to it's content.
|
getEnclosingContainer, getPath, getPhysicalPath, getRoot
void useFastMode()
Fast Mode is enabled at the root container, and enables/disables for all containers beneath that root.
Fast Mode does not cascade into new root containers (eg, where Entry.convertToContainer().isRoot()==true)
Calling this method requires you to later invoke stopUsingFastMode()
This method is equivalent to ArtifactContainer.getRoot().useFastMode()
void stopUsingFastMode()
Fast Mode is enabled at the root container, and enables/disables for all containers beneath that root.
Fast Mode does not cascade into new root containers (eg, where Entry.convertToContainer().isRoot()==true)
Calling this method requires you to have previously invoked useFastMode()
This method is equivalent to ArtifactContainer.getRoot().useFastMode()
boolean isRoot()
ArtifactEntry getEntry(java.lang.String pathAndName)
If path is absolute (starts with '/') and this Container is not root Container#isRoot
the
path is interpreted as being from the Container that is root enclosing this one.
If the path is not absolute, (does not start with '/'), or this Container is root and the path is absolute,
then the entry is searched for relative to this Container.
pathAndName
- absolute or relative path to search for.java.util.Collection<java.net.URL> getURLs()
null
but should return an empty collection instead.java.lang.UnsupportedOperationException
- if the implementation does not support this methodArtifactEntry getEntryInEnclosingContainer()
ArtifactNotifier getArtifactNotifier()