public interface Archive<T extends Archive<T>> extends Assignable
Archive
types support the addition of Node
s under a designated ArchivePath
(context). The
contents of a Node
are either a directory or Asset
.
Archive
s are generally created via an ArchiveFactory
or via the default configuration shortcut
ShrinkWrap
utility class.
Archive
s are Assignable
, they may be wrapped in another user "view" used to perform
operations like adding JavaEE Spec-specific resources or exporting in ZIP format.Modifier and Type | Method and Description |
---|---|
T |
add(Archive<?> archive,
ArchivePath path,
Class<? extends StreamExporter> exporter)
Add an archive under a specific context and maintain the archive name as context path.
|
T |
add(Archive<?> archive,
String path,
Class<? extends StreamExporter> exporter)
Add an archive under a specific context and maintain the archive name as context path.
|
T |
add(Asset asset,
ArchivePath target)
Adds the specified asset under the specified path into the target context
|
T |
add(Asset asset,
ArchivePath target,
String name)
Adds the specified asset under the specified target (directory) using the specified name.
|
T |
add(Asset asset,
String target)
Adds the specified resource under the context denoted by the specified target
|
T |
add(Asset asset,
String target,
String name)
Adds the specified asset under the specified target (directory) using the specified name.
|
T |
add(NamedAsset namedAsset)
Adds the asset encapsulated within the specified
NamedAsset under the encapsulated name and target
(directory) |
T |
addAsDirectories(ArchivePath... paths)
Adds the specified directories.
|
T |
addAsDirectories(String... paths)
Adds the specified directories.
|
T |
addAsDirectory(ArchivePath path)
Adds the specified directory.
|
T |
addAsDirectory(String path)
Adds the specified directory.
|
T |
addHandlers(ArchiveEventHandler... handlers)
Add an array of listeners for call back based.
|
boolean |
contains(ArchivePath path)
Denotes whether this archive contains a resource at the specified path
|
boolean |
contains(String path)
Denotes whether this archive contains a resource at the specified path
|
Node |
delete(ArchivePath path)
|
Node |
delete(String archivePath)
|
T |
filter(Filter<ArchivePath> filter)
Obtains all assets matching given filter in this archive as a new Archive.
This is an alias for shallowCopy(Filter). |
Node |
get(ArchivePath path)
Obtains the
Node located at the specified path |
Node |
get(String path)
Obtains the
Node located at the specified path |
<X extends Archive<X>> |
getAsType(Class<X> type,
ArchivePath path)
Get a nested
Archive as a specific type.The found Archives must have been added as a Archive, no import is performed. |
<X extends Archive<X>> |
getAsType(Class<X> type,
ArchivePath path,
ArchiveFormat archiveFormat)
|
<X extends Archive<X>> |
getAsType(Class<X> type,
Filter<ArchivePath> filter)
Get all nested
Archive matching the filter as a specific type.The found Archives must have been added as a Archive, no import is performed. |
<X extends Archive<X>> |
getAsType(Class<X> type,
Filter<ArchivePath> filter,
ArchiveFormat archiveFormat)
Get all nested
Archive matching the filter as a specific type using the specify ArchiveFormat . |
<X extends Archive<X>> |
getAsType(Class<X> type,
String path)
Get a nested
Archive as a specific type.The found Archives must have been added as a Archive, no import is performed. |
<X extends Archive<X>> |
getAsType(Class<X> type,
String path,
ArchiveFormat archiveFormat)
Get a nested
Archive as a specific type using the specify ArchiveFormat |
Map<ArchivePath,Node> |
getContent()
Obtains all assets in this archive, along with their respective paths.
|
Map<ArchivePath,Node> |
getContent(Filter<ArchivePath> filter)
Obtains all assets matching given filter in this archive, along with its respective Path.
|
String |
getId()
Obtains a globally-unique identifier for this
Archive |
String |
getName()
Obtains the name of this archive (ie.
|
T |
merge(Archive<?> source)
Merge the contents from an existing archive without maintaining the archive name in the context path.
|
T |
merge(Archive<?> source,
ArchivePath path)
Merge the contents from an existing archive in a specific path without maintaining the archive name in the
context path.
|
T |
merge(Archive<?> source,
ArchivePath path,
Filter<ArchivePath> filter)
Merge the contents from an existing archive in a specific path without maintaining the archive name in the
context path.
|
T |
merge(Archive<?> source,
Filter<ArchivePath> filter)
Merge the contents from an existing archive without maintaining the archive name in the context path.
|
T |
merge(Archive<?> source,
String path)
Merge the contents from an existing archive in a specific path without maintaining the archive name in the
context path.
|
T |
merge(Archive<?> source,
String path,
Filter<ArchivePath> filter)
Merge the contents from an existing archive in a specific path without maintaining the archive name in the
context path.
|
T |
move(ArchivePath source,
ArchivePath target)
Moves the asset under the source path to the target path.
|
T |
move(String source,
String target)
Moves the asset under the source path to the target path.
|
Archive<T> |
shallowCopy()
Creates a shallow copy of this
Archive . |
Archive<T> |
shallowCopy(Filter<ArchivePath> filter)
Creates a shallow copy of this
Archive based on given filter.Assets from this archive are made available
under the same paths. |
String |
toString()
Acts as a shorthand for
toString(Formatter) where the Formatters.SIMPLE is leveraged. |
String |
toString(boolean verbose)
If "true" is specified, acts as a shorthand for
toString(Formatter) where the
Formatters.VERBOSE is leveraged. |
String |
toString(Formatter formatter)
|
void |
writeTo(OutputStream outputStream,
Formatter formatter)
Prints the content of this
Archive to the specified OutputStream on the format defined by the
specified Formatter . |
as
String getName()
T add(Asset asset, ArchivePath target) throws IllegalArgumentException
target
- The context under which to add the assetsasset
- IllegalArgumentException
- If no target or assets were specifiedIllegalArchivePathException
- If the target is invalid.T add(Asset asset, ArchivePath target, String name) throws IllegalArgumentException
target
- The context directory under which to add the assetname
- The name to assign the assent under the target namespaceasset
- IllegalArgumentException
- If the target, name, or asset was not specifiedIllegalArchivePathException
- If the target is invalid.T add(Asset asset, String target, String name) throws IllegalArgumentException
target
- The context directory under which to add the assetname
- The name to assign the assent under the target namespaceasset
- IllegalArgumentException
- If the target, name, or asset was not specifiedIllegalArchivePathException
- If the target is invalid.T add(NamedAsset namedAsset) throws IllegalArgumentException
NamedAsset
under the encapsulated name and target
(directory)namedAsset
- IllegalArgumentException
- If either the target or asset is not specifiedIllegalArchivePathException
- If the target is invalid.T add(Asset asset, String target) throws IllegalArgumentException
target
- asset
- IllegalArgumentException
- If either the target or asset is not specifiedIllegalArchivePathException
- If the target is invalid.T addAsDirectory(String path) throws IllegalArgumentException
path
- The path to addIllegalArgumentException
- If no path was specifiedIllegalArchivePathException
- If the path is invalid.T addAsDirectories(String... paths) throws IllegalArgumentException
paths
- The paths to addIllegalArgumentException
- If no paths were specifiedIllegalArchivePathException
- If at least one path is invalid.T addAsDirectory(ArchivePath path) throws IllegalArgumentException
path
- The path to addIllegalArgumentException
- If no path was specifiedIllegalArchivePathException
- If the path is invalid.T addAsDirectories(ArchivePath... paths) throws IllegalArgumentException
paths
- The paths to addIllegalArgumentException
- If no paths were specifiedIllegalArchivePathException
- If at least one path is invalid.T addHandlers(ArchiveEventHandler... handlers)
listener
- CallBack on addNode get(ArchivePath path) throws IllegalArgumentException
Node
located at the specified pathpath
- Node
, or null if nothing is found at the specified pathIllegalArgumentException
- If the path is not specifiedNode get(String path) throws IllegalArgumentException
Node
located at the specified pathpath
- Node
, or null if nothing is found at the PathIllegalArgumentException
- If the path is not specified<X extends Archive<X>> X getAsType(Class<X> type, String path)
Archive
as a specific type.X
- type
- The Type to return the Archive aspath
- The location of the ArchiveIllegalArgumentException
- if found Asset
is not pointing to a Archive
getAsType(Class, ArchivePath)
,
add(Archive, ArchivePath, Class)
,
add(Archive, String, Class)
<X extends Archive<X>> X getAsType(Class<X> type, ArchivePath path)
Archive
as a specific type.X
- type
- The Type to return the Archive aspath
- The location of the ArchiveArchivePath
IllegalArgumentException
- if found Asset
is not pointing to a Archive
add(Archive, ArchivePath, Class)
,
add(Archive, String, Class)
<X extends Archive<X>> Collection<X> getAsType(Class<X> type, Filter<ArchivePath> filter)
Archive
matching the filter as a specific type.X
- type
- The Type to return the Archive asfilter
- Filter to match resultCollection
of found Archives matching given filter or empty Collection
if non found.IllegalArgumentException
- if found Asset
is not pointing to a Archive
getAsType(Class, ArchivePath)
,
add(Archive, ArchivePath, Class)
,
add(Archive, String, Class)
<X extends Archive<X>> X getAsType(Class<X> type, String path, ArchiveFormat archiveFormat)
Archive
as a specific type using the specify ArchiveFormat
type
- The Type to return the Archive aspath
- The location of the ArchivearchiveFormat
- The archive formatadd(Archive, ArchivePath, Class)
,
add(Archive, String, Class)
<X extends Archive<X>> X getAsType(Class<X> type, ArchivePath path, ArchiveFormat archiveFormat)
type
- The Type to return the Archive aspath
- The location of the ArchivearchiveFormat
- The archive formatArchivePath
add(Archive, ArchivePath, Class)
,
add(Archive, String, Class)
<X extends Archive<X>> Collection<X> getAsType(Class<X> type, Filter<ArchivePath> filter, ArchiveFormat archiveFormat)
Archive
matching the filter as a specific type using the specify ArchiveFormat
.X
- type
- The Type to return the Archive asfilter
- Filter to match resultarchiveFormat
- The archive formatCollection
of found Archives matching given filter or empty Collection
if non found.getAsType(Class, ArchivePath, ArchiveFormat)
,
add(Archive, ArchivePath, Class)
,
add(Archive, String, Class)
boolean contains(ArchivePath path) throws IllegalArgumentException
path
- IllegalArgumentException
- If the path is not specifiedboolean contains(String path) throws IllegalArgumentException
path
- IllegalArgumentException
- If the path is not specifiedNode delete(ArchivePath path) throws IllegalArgumentException
Node
in the Archive
at the specified ArchivePath
. If the path is a directory,
recursively removes all contents. If the path does not exist, return null.path
- IllegalArgumentException
Node delete(String archivePath) throws IllegalArgumentException
Node
in the Archive
at the ArchivePath
indicated by the specified String
archivePath. If the path is a directory, recursively removes all contents. If the path does not exist, return
null.archivePath
- IllegalArgumentException
delete(ArchivePath)
Map<ArchivePath,Node> getContent()
Map<ArchivePath,Node> getContent(Filter<ArchivePath> filter)
T filter(Filter<ArchivePath> filter)
filter
- shallowCopy(Filter)
T add(Archive<?> archive, ArchivePath path, Class<? extends StreamExporter> exporter) throws IllegalArgumentException
path
- to usearchive
- to addexporter
- Exporter type to use in fulfilling the Asset.openStream()
contract for the added (nested)
archive.IllegalArgumentException
- If any argument is not specifiedT add(Archive<?> archive, String path, Class<? extends StreamExporter> exporter) throws IllegalArgumentException
path
- to usearchive
- to addexporter
- Exporter type to use in fulfilling the Asset.openStream()
contract for the added (nested)
archive.IllegalArgumentException
- If the path or archive are not specifiedT merge(Archive<?> source) throws IllegalArgumentException
source
- Archive to add contents fromIllegalArgumentException
- If the existing archive is not specifiedT merge(Archive<?> source, Filter<ArchivePath> filter) throws IllegalArgumentException
ArchivePath
s to include form the source Archive
.source
- Archive to add contents fromIllegalArgumentException
- If the existing archive is not specifiedT merge(Archive<?> source, ArchivePath path) throws IllegalArgumentException
source
- Archive to add contents frompath
- Path to add contents toIllegalArgumentException
- If the path or existing archive is not specifiedT merge(Archive<?> source, String path) throws IllegalArgumentException
source
- Archive to add contents frompath
- Path to add contents toIllegalArgumentException
- If the path or existing archive is not specifiedT merge(Archive<?> source, ArchivePath path, Filter<ArchivePath> filter) throws IllegalArgumentException
ArchivePath
s to include form the source Archive
.source
- Archive to add contents frompath
- Path to add contents tofilter
- Filter to use for including Asset
s in the merge.IllegalArgumentException
- If the path or existing archive is not specifiedT merge(Archive<?> source, String path, Filter<ArchivePath> filter) throws IllegalArgumentException
ArchivePath
s to include form the source Archive
.source
- Archive to add contents frompath
- Path to add contents tofilter
- Filter to use for including Asset
s in the merge.IllegalArgumentException
- If the path or existing archive is not specifiedT move(ArchivePath source, ArchivePath target) throws IllegalArgumentException, IllegalArchivePathException
source
- The context under which to remove the assetstarget
- The context under which to add the moved assetsIllegalArgumentException
- If any of the paths is not specifiedIllegalArchivePathException
- If the source path is invalid.T move(String source, String target) throws IllegalArgumentException, IllegalArchivePathException
source
- The context under which to remove the assetstarget
- The context under which to add the moved assetsIllegalArgumentException
- If any of the paths is not specifiedIllegalArchivePathException
- If the source path is invalid.String toString()
toString(Formatter)
where the Formatters.SIMPLE
is leveraged.String toString(boolean verbose)
toString(Formatter)
where the
Formatters.VERBOSE
is leveraged. Otherwise the Formatters.SIMPLE
will be used (equivalent to
toString()
).String toString(Formatter formatter) throws IllegalArgumentException
Archive
as returned from the specified Formatter
. Common options may be to
use the predefined formatters located in Formatters
formatter
- IllegalArgumentException
- If the formatter is not specifiedvoid writeTo(OutputStream outputStream, Formatter formatter) throws IllegalArgumentException
Archive
to the specified OutputStream
on the format defined by the
specified Formatter
. The caller is responsible for opening, flushing and eventually closing the stream.outputStream
- the stream to print the archive contents toformatter
- the output formatIllegalArgumentException
- if an exceptions occur when writing the archive contents.Archive<T> shallowCopy()
Archive
. Assets from this archive are made available under the same paths.
However, removing old assets or adding new assets on this archive affects does not affect the new archive.Archive<T> shallowCopy(Filter<ArchivePath> filter)
Archive
based on given filter.Assets from this archive are made available
under the same paths. However, removing old assets or adding new assets on this archive affects does not affect
the new archive.Copyright © 2016 JBoss by Red Hat. All rights reserved.